package exec;

import java.util.Vector;

public class ClientList extends Vector<Comm> {
    
    ClientList() {
        super();
    }
    
    public void sendMessageToDest(Message message) {
        for(int i=0; i<this.size(); i++) {
            if (message.getNickDest().equals(this.elementAt(i).getName())) {
                this.elementAt(i).send(message);
                break;
            }
        }
    }
    
    public void sendMessageToAll(Message message) {
        for (int i=0; i<this.size(); i++) {
            if (!(message.getNickSrc().equals(this.elementAt(i).getName()))) {
                this.elementAt(i).send(message);
            }
        }
    }

    boolean hasClient(Comm comm) {
        for(int i=0; i<this.size();i++) {
            if (comm.message.getNickSrc().equals(this.elementAt(i).getName()))
                return true;
        }
        return false;
    }

    void addClient(Comm comm) {
        this.add(comm);
        sendList();
    }

    private void sendList() {
        String list = "";
        for(int i=0; i<this.size();i++) {
            list += '/' +this.elementAt(i).getName() + ' ';       
        }
        System.out.println("LIST : " +list);
        Message message = new Message(Message.LIST, "Server", "all", list);
        for(int i=0; i<this.size();i++) {
            this.elementAt(i).send(message);
        }
    }

    void rmClient(Comm comm) {
        for(int i=0; i<this.size();i++) {
            if (comm.message.getNickSrc().equals(this.elementAt(i).getName())) {
                this.elementAt(i).close();
                this.removeElementAt(i);
                break;
            }
        }
        sendList();
    }
}    
